A portion of the disclosure of this patent document contains material that is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever.
The present invention relates to a motherboard and removable circuit card architecture and interface for use in computer systems.
Typically, a computer includes of a motherboard containing components, such as a main processor or central processing unit (xe2x80x9cCPUxe2x80x9d), memory, disk storage and other devices. These components normally transfer data to the CPU through a local data and address bus.
To provide additional functionality to one""s computer, a user may plug a peripheral expansion card into one of a number of connectors or slots into the computer""s motherboard. Additionally, one or more peripheral expansion cards may transfer data to the CPU through an external input/output (xe2x80x9cI/Oxe2x80x9d) bus via a connector on the motherboard. As a result, the CPU""s external bus permits the computer to be expanded using a modular approach. For example, peripheral expansions of a computer may include adding a sound subsystem, a video subsystem, a communications subsystem, a compact disc (xe2x80x9cCDxe2x80x9d) device, a storage device or hard drive, an instrumentation interface, or other special function expansions to the PC computer.
Typically, these peripheral expansion cards have pins on the edge of the card interfacing to a connector on the motherboard in order to provide electrical connections between the electronic circuits on the peripheral expansion card and the components, such as the CPU, on the motherboard. Then, the components can access these electrical circuits on the peripheral card via the CPU""s external I/O bus. Further, each electrical connection on the external I/O bus typically provides a specific function. For example, one set of connections may provide the voltages required to power the peripheral expansion card (for example, +5, +12, and ground). Another group of connections might enable the data bus to transmit data between the CPU and the electronic circuits. A third group of contacts can provide the address bus in order to permit the device to be addressed through a set of I/O addresses. Finally, there may be contacts for control or other signals such as interrupts requests (xe2x80x9cIRQ""sxe2x80x9d), direct memory access (xe2x80x9cDMAxe2x80x9d) channels, and clock signals.
One of the earliest PC buses is named the xe2x80x9c8-bit busxe2x80x9d (also known as the XT bus) because early PCs often had 8 bit processors like the Intel 8085 and 8088. This 8-bit bus has eight interrupts (of which six could be used by peripheral expansion cards), four DMA channels, a 62 pin connector and a CPU with a clock speed of 4.77 MHz. However, the installation of a peripheral expansion card requires manual configuration to utilize available computer resources such as DMA channels, IRQs, and I/O addresses. Additionally, each peripheral expansion card is separately configured in order to avoid a conflict with another device that utilizes the bus. Each card is configured for a particular computer by using jumpers and dual in-line package switches (xe2x80x9cDIPxe2x80x9d) to operate with the computer according to instructions defined by the manufacturer.
The introduction of the IBM AT computer resulted in the development of a bus known as the Industry Standard Architecture (xe2x80x9cISAxe2x80x9d) bus. However, the ISA bus is a 16-bit bus because the IBM AT computer has a 16-bit processor such as the Intel 8086. The ISA bus is based on the xe2x80x9c8-bit busxe2x80x9d connector with the addition of a small bus connector adding several signal lines to widen the data bus to 16-bits. In addition to the extra resources, the ISA bus is backward compatible with the older 8-bit bus. The ISA bus also adds eight more interrupts, additional data and address lines, and four additional DMA channels. Further yet, improvements over the XT bus include an increased clock speed of 8 MHz for the ISA bus with xe2x80x9cTurboxe2x80x9d models running near 10 MHz. Additionally, the ISA bus is capable of xe2x80x9cbus masteringxe2x80x9d allowing a device on a peripheral card to take control of the bus to read or write directly from another device while the CPU is momentarily idled. As a result, bus mastering can greatly improve the data transfer performance of a computer.
Both the XT and AT bus typically operate at the same clock speed as the CPU, namely 4.77 MHz and 8 MHz, respectively. However, when newer CPUs outpaced the 8 MHz bus, such as with the early 12 MHz Intel ""286 CPUs, the maximum speed of the bus limited the CPU clock speed. For instance, if the CPU clock is tied to the ISA bus having a clock speed of 8 MHz, then a faster CPU such as the 12 MHz Intel 286 CPU would be forced to operate at an 8 MHz CPU clock speed despite the ""286 CPU""s increased operating speed. Rather than force the ""286 CPU to operate at a slower clock speed, one solution was to separate the ""286 CPU clock from the I/O bus clock (i.e. 8 MHz), so that the ""286 CPU could run at it""s maximum speed (i.e. 12 MHz). Consequently, de-coupling the I/O bus from the 3286 CPU bus allows the I/O bus to operate at 8 MHz while the CPU clock may operate at 12 MHz.
As in the 8-bit bus however, the ISA bus may be configured using the same manual procedures for configuring the 8-bit expansion cards. As a result, resources such as interrupt memory addresses, DMA channels, and I/O ports are manually configured using jumpers and DIP switches. Alternatively, one special method of configuring an ISA bus expansion card is based on an ISA xe2x80x9cPlug-and-Playxe2x80x9d system. According to the ISA xe2x80x9cPlug-and-Playxe2x80x9d system, ISA cards may also be configured using an Electronically Erasable Programmable Read Only Memory (xe2x80x9cEEPROMxe2x80x9d) chip on the card. Essentially, the jumper positions of the manual re-configuration method are programmed into the EEPROM and the settings could be made using a special software configuration program.
To operate properly, the ISA xe2x80x9cPlug-and-Playxe2x80x9d (xe2x80x9cPnPxe2x80x9d) system is comprised of a standard ISA bus and a special set of Basic Input/Output System (xe2x80x9cBIOSxe2x80x9d) extensions. In theory, these BIOS extensions examine the installed xe2x80x9cPlug-and-Playxe2x80x9d compatible cards at start up and set expansion cards to available resource settings. Despite intentions to make configuring an ISA card easy, the ISA xe2x80x9cPlug-and-Playxe2x80x9d method failed because the ISA xe2x80x9cPlug-and-Playxe2x80x9d enumeration algorithm was not widely accepted. As a result, conflicts between the CPU and the expansion card were frequent because the configuration system would not know about the existence of other non-PnP cards. Consequently, xe2x80x9cPlug-and-Playxe2x80x9d soon earned the nickname in the computer service industry as xe2x80x9cPlug and Prayxe2x80x9d.
IBM later developed a bus using a higher density connector known as Micro-Channel Architecture (xe2x80x9cMCAxe2x80x9d). The MCA bus was available in either 16-bit or 32-bit versions and featured multiple bus mastering. Although the MCA bus clock speed was set at 10 MHz, the MCA allowed change configurations under software control rather than with jumpers and DIP switches. Consequently, a user can configure an MCA peripheral card to use available resources such as IRQ, DMA channel, memory address, and I/O ports using a reference disk and an option diskette after installing the physical device in the computer. The reference disk is a special bootable disk containing a program that sends commands to bus devices to configure their parameters. This reference disk is included with the computer and is unique to the particular MCA bus computer. Each MCA peripheral card also comes with an option disk containing the device specific configuration files for the device being installed. Nevertheless, computer systems designers do not extensively use the MCA bus because it is not backward compatible with the ISA bus.
The Extended Industry Standard Architecture (xe2x80x9cEISAxe2x80x9d) open bus standard was developed by nine companies (Compaq, AST, Olivetti, Tandy, Hewlett-Packard, WYSE, Zenith, NEC and Epson) for defining a 32-bit software configurable EISA bus. According to the EISA standard, the peripheral expansion bus slots have both 32-bit finger and 16-bit slots to provide backward compatibility with ISA cards. However, as in the 8-bit bus, this bus is limited to an 8 MHz clock speed. Configuring an EISA bus is similar to configuring an MCA bus unless an ISA card is installed into an EISA slot. If an ISA card is installed, then the configuration procedure for an ISA card applies.
Once Pentium class 32-bit processors were introduced, the Peripheral Component Interconnect (xe2x80x9cPCIxe2x80x9d) bus was developed to provide an interface bus that can match the speed of the Pentium microprocessor. PCI can support both 64-bit and 32-bit wide multiplexed address and data lines, so it can be used in both 486 and Pentium class systems. The PCI bus currently operates at up to 33 MHz with future versions operating up to 66 MHz.
The PCI bus is processor-independent because the external PCI bus transfers data to the local CPU bus through a special bridge circuit. The bridge circuit contains a memory controller and is connected to a cache and memory subsystems. Additionally, the bridge circuit may include data buffering/posting and PCI central functions such as arbitration. As a result, this provides the advantage of the bus being nearly universal with other computers because the PCI bus is compatible with a variety of personal computers, Mac OS based computers, and RISC type computers. The bridge circuit including the memory controller therefore allows PCI masters direct access to main memory. Additionally, the PCI bus can support multiple bus mastering expansion cards providing maximum bus throughput of up to 265 Mbps with 64 bit cards.
The PCI controller may perform arbitration using an access-based rather than a time-slot-based arbitration scheme. A bus master must arbitrate for each master access it performs on the bus. PCI may use a central arbitration scheme, where each master agent has a unique request and grant signal. A master agent may use a request-handshake to gain access to the bus.
The PCI bus and cards also provide some Plug-and-Play capabilities. PCI Plug-and-Play permits a programmatic enumeration, which automatically configures the PCI card for memory addressing, IRQ and DMA selection and I/O port addressing without having to move jumpers or DIP switches. When a new PCI card is installed and the computer is rebooted, the basic input/output (xe2x80x9cBIOSxe2x80x9d) of the computer system should detect the newly installed device(s) and configure the computer resources such as memory, IRQ, I/O, and DMA settings without human intervention. Additionally, when the operating system detects the insertion of a new device, it installs the proper software so that the computer can use that motherboard or PCI card.
Yet another standard known as the Audio/Modem Riser (xe2x80x9cAMRxe2x80x9d) specification defines an open industry-standard interface connector and mechanical form factor for adding a modem and audio riser card to ATX, micro ATX, and NLX circuit board form factors. Sensitive analog components are placed on a riser card in order to provide high quality audio and also easier modem homologation. The AMR interface provides support for Audio Codec (xe2x80x9cACxe2x80x9d), Modem Codec (xe2x80x9cMCxe2x80x9d) and Audio/Modem Codec (xe2x80x9cAMCxe2x80x9d) devices. However, the AMR Specification does not define an aftermarket I/O standard expansion slot. Instead, the AMR specification only defines a system manufacturer, motherboard-only, riser interface that is intended to be fully configured prior to the initial shipment of the system. Nevertheless, the PCI bus standard typically serves as the aftermarket I/O interface. The document entitled xe2x80x9cAudio/Modem Riser Specificationxe2x80x9d, by Intel Corporation, provides additional details on the AMR specification.
The AMR standard, however, was intended for conventional modem devices and does not accommodate today""s high bandwidth communication devices. Computers today routinely take advantage of the expanding broadband network by utilizing digital subscriber lines, cable modems, and home networking technology. Needed is a system that allows greater scalability and expandability by integrating high bandwidth communication devices on a peripheral card. Moreover, needed is a system that can discover, identify and assign peripheral devices added to a computer system while arbitrating conflicts between devices.
Addressing some of the problems with systems utilizing peripherals or expansion cards as described above, the present embodiments provide the ability to support expansion card based broadband communications, networking peripheral and audio subsystem designs on one expansion card connected to a computer system motherboard. By supporting multiple peripheral devices on an expansion card, bus slots on the system motherboard can be freed up for use by other peripheral or expansion devices. Moreover, utilizing the present embodiments, printed circuit board area and cost of adapter cards can be reduced. The exemplary embodiments disclose a system and method capable of providing for a more forward approach in motherboard and removable expansion card architecture.
In an aspect of the present invention, a method for discovering devices on a peripheral card removable from the motherboard includes accessing information from a storage device located on the peripheral card. From the accessed information, a device list can be generated and utilized to program at least one appropriate controller on the motherboard with configuration parameters from the device list.
In another aspect of the present invention, a computer system includes a motherboard having a set of programmable device controllers, a bus system, and an expansion card having a set of peripheral devices. The bus system connects the set of controllers located on the motherboard to the peripheral devices located on the expansion card. At startup, a basic input/output system on the motherboard requests information relating to the peripheral devices. The information relating to the set of peripheral devices is then transmitted from a storage device located on the expansion card to the basic input/output system for distribution to the appropriate controllers.
In yet another aspect of the present invention, an expansion card contains a set of peripheral devices and a storage unit. The storage unit identifies the expansion card and the peripheral devices included on the card. In the exemplary embodiment, the storage unit contains enumeration and configuration data for the expansion card and the peripheral devices located on the card.
According to another aspect of the present invention, a motherboard includes a set of controllers including a serial bus controller, an advanced communication riser (xe2x80x9cACRxe2x80x9d) connector, and a basic input/output system. The set of controllers are in communication with the ACR connector. The basic input/output system is in communication with the serial bus controller. In the exemplary embodiment, the basic input/output system obtains information relating to peripheral devices on an attached expansion card from the expansion card via the serial bus controller, and programs the information onto each of the other controllers.
In yet another aspect of the present invention, a method for saving printed board area and cost of adapter cards includes utilizing a multi-functional bus system. In the exemplary embodiment, the multi-functional bus system including an edge pin connector is configured such that the edge pin connector located on a peripheral card does not necessarily have to be as large as the full length of a connector located on a motherboard. Moreover, with careful grouping of the pins on the edge pin connector, the size of peripheral card can vary to achieve a desired card length and width. Thus, the peripheral card does not need to waste unnecessary printed board area and costly adapter cards.
The present embodiment provides many different uses and advantages. For example, the present embodiments provide a flexible method of discovering and integrating plug-and-play peripheral devices. The present embodiments provide an enumeration process to enable new devices to be discovered and assigned the appropriate device parameters and drivers without conflict with existing devices such as devices on other peripheral cards as well as motherboard-based devices. BIOS entry points can also be created to allow software programs to access and utilize the device parameters. The embodiments herein are also backward compatible with existing AMR standard systems and can provide a standard interface for future communication devices.
The present embodiments also save circuit board space on peripheral cards enabling reduced sized peripheral cards when connector pin outs are advantageously assigned as described herein. Multiple and diverse communication devices such as network interfaces, DSL and wireless interfaces, can be accommodated on a single, scalable circuit card saving board space and PCI slots. Due to the scalable architecture, future extensions and expansion can be added to existing systems.